In recent years, business intelligence software has become increasingly utilized by large business enterprises and other organizations. Business intelligence provides current and historical views of business operations by analyzing internal, structured data and business processes of the organization. It is often used to create future models and predictions in order to support better business decision making. As such, business intelligence tools can lead to decreased costs and increased efficiency, productivity and profit margins for many companies.
Business intelligence is usually implemented as software and/or hardware tools that are used to collect and analyze data and to transform the raw data into meaningful and useful information used to enable more effective strategic, tactical, and operational insights and decision-making. As such, a typical business intelligence server relies on data that may reside in a variety of places, including but not limited to relational databases, online analytical processing (OLAP) tools, repositories and content management systems, application servers, as well as a number of other sources.
In a typical business intelligence (BI) server, data is collected from all (or some) of these data sources and placed into a (virtual or physical) data warehouse or data mart, where it can then be modeled and analyzed before being presented to the user. For example, one approach is to implement a physical layer within the business intelligence server, where data is modeled as a consolidated table that mirrors objects in the data source layer. An application developer can assemble these compound objects by hand, using a subset of the entities relevant to the domain; the synthesized objects can subsequently be imported into the business intelligence server's metadata and decomposed into dimensions and facts.
However, a number limitations and potential areas of improvement still exist in the field of modeling and querying data within the context of business intelligence servers. For example, executing logical structured query language (SQL) queries against the BI server and/or data sources is often a slow and complex task for users to manage. The syntax of such queries can be verbose and rigid and is often difficult to learn. In addition, for more complicated queries, the query shape does not lend itself well for re-writes to online analytical processing (OLAP) sources, which support a variety of native constructs to simplify selections of data. In light of the foregoing, what is needed is a simpler and more efficient way to perform data querying in the context of business intelligence.